/*
 * <p>Copyright ®Alyce_WX版权所有。</p>
 * 类名:ViewWorksTagDaoImpl
 * 创建人:alyce_wx
 * 创建时间:2017-03-30
 */
package com.wx.demo.wcd.infrastructure.dao.impl;

import java.util.Map;

import javax.annotation.Resource;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Repository;

import com.wx.demo.wcd.domain.pk.ViewWorksTagPK;
import com.wx.demo.wcd.domain.po.ViewWorksTagPO;
import com.wx.demo.wcd.domain.qo.ViewWorksTagQO;
import com.wx.demo.wcd.infrastructure.dao.ViewWorksTagDao;
import com.yjhl.framework.dao.AbstractDao;

/**
 * dao implement class for ViewWorksTag view
 *
 * @author alyce_wx
 * @see com.yjhl.framework.dao.AbstractDao
 * @see com.wx.demo.wcd.infrastructure.dao.ViewWorksTagDao;
 * @since 1.8
 * @version 1.0.0
 */

@Repository("viewWorksTagDao")
public class ViewWorksTagDaoImpl extends
		AbstractDao<ViewWorksTagPO, ViewWorksTagQO, ViewWorksTagPK> implements
		ViewWorksTagDao {
	/**
	 * spring SQL session
	 */
	@Resource
	private SqlSessionTemplate wcdSqlSessionTemplate;

	/**
	 * Get SQL session。 Get SQL session since spring auto wired.
	 *
	 * @return SQL session
	 * @see com.yjhl.framework.dao.AbstractDAO#getSqlSessionTemplate()
	 * @since 1.8
	 * @version 1.0.0
	 */
	@Override
	protected SqlSessionTemplate getSqlSessionTemplate() {
		return wcdSqlSessionTemplate;
	}

	/**
	 * 获取mybatis的命名空间。
	 *
	 * @return MyBatis的命名空间.
	 * @see com.yjhl.framework.dao.AbstractDAO#getNamespace()
	 * @since 1.8
	 * @version 1.0.0
	 */
	@Override
	protected String getNamespace() {
		return "wcdviewWorksTagDAO";
	}

	/**
	 * 获取不带"-"的UUID。
	 *
	 * @return 不带"-"的UUID.
	 * @see com.yjhl.framework.dao.AbstractDao#getSequence()
	 * @since 1.8
	 * @version 1.0.0
	 */
	@Override
	public String getSequence() {
		return null;

	}

	/**
	 * insert a ViewWorksTagPO
	 *
	 * @param entity
	 *            ViewWorksTagPO
	 * @return insert rows
	 * @see com.yjhl.framework.dao.AbstractDAO#insert(ViewWorksTagPO)
	 * @since 1.8
	 * @version 1.0.0
	 */
	@Override
	public int insert(ViewWorksTagPO entity) {
		throw new java.lang.IllegalArgumentException(
				"insert method not support for view object now!");
	}

	/**
	 * @see com.yjhl.framework.dao.AbstractDAO#updateByPk(ViewWorksTagPO)
	 */
	@Override
	public int updateByPk(ViewWorksTagPO entitywithpk) {
		throw new java.lang.IllegalArgumentException(
				"updateByPk method not support for view object now!");
	}

	/**
	 * @see com.yjhl.framework.dao.AbstractDAO#updateByPkWithBlobs(ViewWorksTagPO)
	 */
	@Override
	public int updateByPkWithBlobs(ViewWorksTagPO entitywithpk) {
		throw new java.lang.IllegalArgumentException(
				"updateByPkWithBlobs method not support for view object now!");
	}

	/**
	 * @see com.yjhl.framework.dao.AbstractDAO#update(ViewWorksTagPO,
	 *      ViewWorksTagQO)
	 */
	@Override
	public int update(ViewWorksTagPO entity, ViewWorksTagQO condition) {
		throw new java.lang.IllegalArgumentException(
				"update method not support for view object now!");
	}

	/**
	 * @see com.yjhl.framework.dao.AbstractDAO#updateByPkSelective(ViewWorksTagPO)
	 */
	@Override
	public int updateByPkSelective(ViewWorksTagPO entitywithpk) {
		throw new java.lang.IllegalArgumentException(
				"updateByPkSelective method not support for view object now!");
	}

	/**
	 * @see com.yjhl.framework.dao.AbstractDAO#updateByPkSelectiveWithBlobs(ViewWorksTagPO)
	 */
	@Override
	public int updateByPkSelectiveWithBlobs(ViewWorksTagPO entitywithpk) {
		throw new java.lang.IllegalArgumentException(
				"updateByPkSelectiveWithBlobs method not support for view object now!");
	}

	/**
	 * @see com.yjhl.framework.dao.AbstractDAO#updateSelective(ViewWorksTagPO,
	 *      ViewWorksTagQO)
	 */
	@Override
	public int updateSelective(ViewWorksTagPO entity, ViewWorksTagQO condition) {
		throw new java.lang.IllegalArgumentException(
				"updateSelective method not support for view object now!");
	}

	/**
	 * @see com.yjhl.framework.dao.AbstractDAO#updateMapByPk(Map,
	 *      ViewWorksTagPK)
	 */
	@Override
	public int updateMapByPk(Map<String, Object> entity, ViewWorksTagPK entitypk) {
		throw new java.lang.IllegalArgumentException(
				"update method not support for view object now!");
	}

	/**
	 * @see com.yjhl.framework.dao.AbstractDAO#updateMap(Map, ViewWorksTagQO)
	 */
	@Override
	public int updateMap(Map<String, Object> entity, ViewWorksTagQO condition) {
		throw new java.lang.IllegalArgumentException(
				"update method not support for view object now!");
	}

	/**
	 * @see com.yjhl.framework.dao.AbstractDAO#deleteByPk(ViewWorksTagPK)
	 */
	@Override
	public int deleteByPk(ViewWorksTagPK entitypk) {
		throw new java.lang.IllegalArgumentException(
				"deleteByPk method not support for view object now!");
	}

	/**
	 * @see com.yjhl.framework.dao.AbstractDAO#delete(ViewWorksTagQO)
	 */
	@Override
	public int delete(ViewWorksTagQO condition) {
		throw new java.lang.IllegalArgumentException(
				"delete method not support for view object now!");
	}

	/**
	 * @see ViewWorksTagDao#getByPk(String)
	 */
	public ViewWorksTagPO getByPk(String tagId) {
		ViewWorksTagPK entityPK = new ViewWorksTagPK(tagId);

		return super.getByPk(entityPK);
	}

}
